import { defineStore } from "pinia";
import api from '../api/api.js'; // 导入 API 服务

export const cosplayStore = defineStore({
    id: "cosplay",
    state: () => ({
        cosplay: [], // 初始化 cosplay 为一个空数组
        pagedata: [], // 用于存储页面数据
        imageTextData: [],
        collectionDetails: [],
        rowCount: [],
    }),

    actions: {
        async fetchUserInfo(data) {
            this.loadpostsFromLocalStorage(); // 加载本地数据
            // 检查 data.page 是否存在于 pagedata 中
            if (this.pagedata.includes(data.page)) {
                // this.loadpostsFromLocalStorage(); // 如果存在，直接加载本地数据
                return true; // 表示成功加载本地数据
            }

            try {
                const response = await api.post('/cosplay/', data); // 调用API接口
                console.log(response.data.data.coasply);
                if (response.data.code === 0) {
                    // 添加新数据到现有的 cosplay 数组中
                    this.cosplay.push(...response.data.data.coasply);
                    this.pagedata.push(data.page); // 将当前页添加到 pagedata 中
                    this.savepostsToLocalStorage(); // 保存用户信息到本地存储
                    return true; // 表示成功
                } else {
                    console.error('获取用户信息出错:', response.data.msg);
                    return false; // 失败
                }
            } catch (error) {
                console.error("获取用户信息失败:", error);
                return false; // 处理错误
            }
        },
        async initialize() {
            this.loadpostsFromLocalStorage(); // 加载本地数据
            // 检查 data.page 是否存在于 pagedata 中
            if (!this.pagedata) {
                // this.loadpostsFromLocalStorage(); // 如果存在，直接加载本地数据
                return true; // 表示成功加载本地数据
            }

            try {
                const response = await api.get('/cosplay/'); // 调用API接口
                console.log(response.data.data);

                if (response.data.code === 0) {
                    // 添加新数据到现有的 cosplay 数组中
                    this.cosplay = response.data.data.coasply;

                    console.log(this.cosplay);

                    // this.pagedata.push(1); // 将当前页添加到 pagedata 中

                    this.savepostsToLocalStorage(); // 保存用户信息到本地存储
                    return true; // 表示成功
                } else {
                    console.error('获取用户信息出错:', response.data.msg);
                    return false; // 失败
                }
            } catch (error) {
                return false; // 处理错误
            }
        },


        savepostsToLocalStorage() {
            localStorage.setItem('cosplay', JSON.stringify(this.cosplay)); // 将用户信息保存到本地存储
            localStorage.setItem('pagedata', JSON.stringify(this.pagedata)); // 将页码保存到本地存储
        },

        loadpostsFromLocalStorage() {
            const cosplay = localStorage.getItem('cosplay'); // 从本地存储读取用户信息
            const pagedata = localStorage.getItem('pagedata'); // 从本地存储读取页码信息

            if (cosplay) {
                this.cosplay = JSON.parse(cosplay); // 解析 JSON 数据并设置到 state
            }
            if (pagedata) {
                this.pagedata = JSON.parse(pagedata); // 解析 JSON 数据并设置到 state
            }
        }
    },

    getters: {
        fullName(state) {
            return `${state.cosplay.firstName} ${state.cosplay.lastName}`; // 示例：获取用户全名的计算属性
        },
    },
});
